Systems and Methods for Rendering a Virtual Content Object in an Augmented Reality Environment

ABSTRACT

Systems and methods for rendering of a virtual content object in an augmented reality environment based on a physical marker are discussed herein. Virtual content objects may be rendered by a display device in an augmented reality environment based on the field of view seen through the display device and a position of a marker (and one or more linkage points associated with the marker) in the real world. When rendered in the augmented reality environment, the virtual content objects may be visualized from any angle, from the exterior or interior of the object, and manipulated in response to user input. Virtual content objects and/or user visualizations of virtual content objects may be shared with other users (local and/or remote), enabling multiple users to potentially build, modify, and/or interact with a virtual content object simultaneously and/or cooperatively.

FIELD OF THE INVENTION

The systems and methods described herein relate to presenting virtualcontent in an augmented reality environment.

BACKGROUND

Augmented reality environments may be used to present virtual content tousers as if it were present in the real world.

SUMMARY

The systems and methods described herein may facilitate the rendering ofa virtual content object in an augmented reality environment based on aphysical marker. An augmented reality environment may include views ofimages forming virtual content superimposed over views of the realworld. The virtual content may comprise objects, surfaces, textures,effects, and/or other content visibly manifested in views of theaugmented reality environment. In various implementations, the virtualcontent may comprise virtual content objects. Virtual content objectsare three-dimensional virtual images of objects, such asthree-dimensional virtual images of constructed objects. For example,the objects may comprise buildings, houses, historical buildings,machines, monuments, vehicles, art installations, components of largerobjects, components of a game, and/or other three-dimensional objects.In various implementations, the objects may represent objects that mayor may not exist in the real-world. For example, a virtual contentobject comprising a house may comprise a house in the real-world or aplanned house not yet built in the real-world. Virtual content objectsmay be rendered by a display device in an augmented reality environmentbased on the field of view seen through the display device and aposition of a marker (and one or more linkage points associated with themarker) in the real world. When rendered in the augmented realityenvironment, the virtual content objects may be visualized from anyangle, from the exterior or interior of the object, and manipulated inresponse to user input. Virtual content objects and/or uservisualizations of virtual content objects may be shared with other users(local and/or remote), enabling multiple users to potentially build,modify, and/or interact with a virtual content object simultaneouslyand/or cooperatively.

In various implementations, the system described herein may beconfigured to render a virtual content object in an augmented realityenvironment based on a physical marker, in accordance with one or moreimplementations. The system may include one or more of an interface, oneor more physical processors, electronic storage, a display device, amarker, and/or other components. A sign post may be configured to serveas the aforementioned marker for the virtual content object in anaugmented reality environment.

The one or more physical processors may be configured bycomputer-readable instructions. Executing the computer-readableinstructions may cause the one or more physical processors to render avirtual content object in an augmented reality environment based on aphysical marker. The computer-readable instructions may include one ormore computer program components. The computer program components mayinclude one or more of a user interface component, a content managementcomponent, an image generation component, a display control component, aremote interaction component, and/or other computer program components.The one or more physical processors may be physically located within auser device and/or within any of the other components of the system. Forexample, the user device may comprise the display device and/or becommunicatively coupled to the display device. The one or more physicalprocessors may represent processing functionality of multiple componentsof the system operating in coordination. Therefore, the variousprocessing functionality described in relation to the one or moreprocessors may be performed by a single component or by multiplecomponents of the system.

The user interface component may be configured to obtain an indicationof the virtual content accessible to a system. For example, the virtualcontent accessible to a system may comprise virtual content stored on auser device, on a display device, on a marker, or otherwise stored inelectronic storage, or virtual content available via a network (e.g.,obtainable via the Internet, stored in cloud storage, or otherwiseavailable via a network). A list of the available virtual content (i.e.,virtual content accessible to the system) may be displayed to the user.For example, a list of the available virtual content may be displayedvia a graphical user interface of a user device, a display of a displaydevice, or any other display interface provided via a user device and/orother component of the system. In various implementations, the list ofavailable virtual content may be selectable, enabling a user to selectvirtual content to be presented via the display device.

The user interface component may be configured to receive requests tomodify a virtual content object. For example, the requests may comprisea request to modify one or more parameters of a virtual content object.The parameters may define a position of the virtual content whendisplayed in an augmented reality environment (e.g., a physical locationin the real-world associated with the virtual content object, a positionin relation to one or more linkage points, and/or a position in relationto one or more other virtual content objects), a size of the virtualcontent object, an orientation of the virtual content object withrespect to a reference frame of the virtual content object, one or morecolors of the virtual content object, a shape of the virtual contentobject, one or more haptic features of the virtual content object, oneor more sounds associated with the virtual content object, one or moreanimations associated with the virtual content object, and/or one ormore other parameters that may define how a virtual content object isrendered in an augmented reality environment. The requests may bereceived through various forms of user input. For example, the userinput may comprise physical input, voice input, gesture-based input,input based on movement of the display device, input based on user eyemovement, and/or other types of user input. The requests to modify thevirtual content object may comprise design alterations, alterations toone or more dimensions of the virtual content object, the effectuationof one or more virtual repairs, and/or one or more requests to modify avirtual content object. When implemented, modifications may be definedby the one or more parameters of the virtual content object.

The content management component may be configured to manage contentavailable to be presented in an augmented reality environment. Forexample, content management component may be configured to download,generate, upload, modify, remove, store, and/or otherwise manageinformation stored and/or accessible by the system. The information mayinclude virtual content information. Virtual content information maydefine virtual content, a reference frame of the virtual content, and/ora correlation between linkage points associated with a marker and thereference frame of the virtual content. The linkage points associatedwith a marker may serve as an anchor for the reference frame of virtualcontent. As such, the position of the linkage points in the real worldmay define the reference frame of virtual content with respect to thereal world.

The content management component may be configured to obtain virtualcontent information. For example, the content management component maybe configured to obtain virtual content information from electronicstorage and/or via a network (e.g., by downloading the content from theInternet, from cloud storage, or otherwise obtaining the virtual contentinformation via a network). In some implementations, the contentmanagement component may be configured to determine whether virtualcontent information defining selected virtual content is locally storedor available and download the required virtual content information basedon a determination that the virtual content information is not locallystored or available.

The content management component may be configured to generate virtualcontent information. Virtual content information may be initiallygenerated using one or more techniques for generating three-dimensionalcontent. In various implementations, virtual content informationdefining virtual content objects may be generated based on user inputidentifying one or more parameters. Therefore, the virtual contentinformation may include information indicating the one or moreparameters in order to define the virtual content object. In someimplementations, virtual content information defining virtual contentobjects may be generated using three-dimensional animation techniques,using three-dimensional drawings (e.g., using computer-aided design(CAD) software), based on three-dimensional photography of real-worldobjects, based on still images and/or videos captured with athree-dimensional camera, and/or using other techniques for generatingthree-dimensional content. The virtual content information may begenerated automatically and/or based on user input related to the one ormore techniques for generating three-dimensional content. The contentmanagement component may be configured to generate modified virtualcontent information based on input received via a device of a user(e.g., user input indicating a request to modify a parameter of avirtual content object). The content management component may beconfigured to generate and/or modify virtual content information basedon user input in real-time.

Virtual content information maintained by content management componentmay be accessible to other users, enabling virtual content created,modified, and/or obtained by a user to be shared with other users. Thecontent management component may be configured to establish one or moreaccess controls associated with virtual content information. Differentaccess controls may be established for different virtual contentinformation. Access controls may restrict users to accessing,downloading, uploading, modifying, storing, removing, and/or otherwiseinteracting with virtual content information. For example, a virtualcontent object may be restricted such that it is only viewable inassociation with one or more linkage points at one or more predefinedphysical locations.

The image generation component may be configured to generate an image ofvirtual content to be displayed in an augmented reality environment. Invarious implementations, the image generation component may beconfigured to generate an image of virtual content to be displayed in anaugmented reality environment based at least on a user's field of viewand virtual content information (i.e., information defining at least thevirtual content and a reference frame of the virtual content).

A user's field of view may be defined based on orientation information,location information, and/or other information. The orientationinformation may define an orientation of the display device. Forexample, the orientation of display device may be defined by one or moreof a pitch angle, a roll angle, a yaw angle, and/or other measurements.When looking through the display device, the orientation of displaydevice may indicate the direction of a user's gaze. The locationinformation may identify a physical location of the display device. Bydetermining the direction of a user's gaze and the user's physicalposition in the real world, a user's field of view may be determined.

The image generation component may be configured to generate an image ofvirtual content to be displayed in an augmented reality environmentbased further on the correlation between linkage points associated witha physical marker and a reference frame of the virtual content. Theimage generation component may be configured to identify linkage pointsassociated with a marker and visible within a field of view of a uservia a display device. The linkage points associated with the physicalmarker may be defined with respect to the physical marker and may serveas an anchor for the reference frame of the virtual content. As such,when rendered in an augmented reality environment by the display device,the virtual content may appear within a user's field of view based onhow the reference frame of the virtual content is correlated to the realworld by virtue of the position of the linkage points in the real world.

The image generation component may be configured to automaticallygenerate images of the virtual content as a user's field of viewchanges, thus changing the depiction of the virtual content in theaugmented reality environment based on the reference frame of thevirtual content and its correlation to the position of the linkagepoints. The image generation component may be configured to generateexterior and interior views of virtual content objects based on aposition of a user with respect to the reference frame of the virtualcontent object. In some implementations, the size of the image of avirtual content object in the augmented reality environment may be thesame as, similar to, or proportionate to the size of the object depictedby the virtual content object as it appears, or would appear, in thereal world. Thus, in some implementations, the image generationcomponent may be configured to depict virtual content objects in anaugmented reality environment as they appear, or would appear, in thereal world, enabling users to perceive and interact with (e.g., walkthrough) the virtual content objects as they exist or would exist in thereal world. In some implementations, the image of a virtual contentobject may appear much larger or much smaller in the augmented realityenvironment than how the object depicted by the virtual content objectappears, or would appear, in the real world. In other words, a virtualcontent object depicting a particular object may be depicted in theaugmented reality environment at any size that is suitable and/ordesirable for viewing the object in the augmented reality environment.

For example, a user may be able to visualize the exterior and interiorof a virtual content object depicting a car or house as the user moveswith respect to the image of the virtual content object. As a result, auser may build a car by choosing one or more options or design a houseby selecting and/or manipulating one or more design features, andvisualize the car or house from multiple angles or from the exterior orinterior, all within in an augmented reality environment. For virtualcontent objects depicting a historical building or a historicalmonument, the image generation component may be configured toautomatically generate images of the virtual content as a user's fieldof view changes, thus enabling a user to visualize a historical buildingsuch as the Pantheon or a historical monument such as Stonehenge frommultiple angles or from the exterior or interior, all within in anaugmented reality environment.

The display control component may be configured to cause an imagegenerated by image generation component to be displayed in an augmentedreality environment via a display device. The display control componentmay be configured to effectuate transmission of instructions to thedisplay device to cause the image to be displayed. Images of virtualcontent generated by image generation component may be presented via adisplay device in conjunction with the real world so that the virtualcontent appears as if it exists in the real world. The display controlcomponent may be configured to cause updated and/or modified images ofvirtual content objects to be displayed in the augmented realityenvironment via a display device in real-time.

The remote interaction component may be configured to facilitatenumerous types of remote interaction with a virtual content object. Invarious implementations, a single virtual content object may be viewedat the same or a different time at two different locations and/or by twodifferent users via one or more display devices. The remote interactioncomponent may be configured to manage the modification of a virtualcontent object by multiple users. In some implementations, multipleusers may simultaneously view duplicate virtual content objects definedbased on a single set of virtual content information and modificationsmade by any user viewing the duplicate virtual content objects may causemodified virtual content information defining a new virtual contentobject to be generated, irrespective of actions taken by any other user.

The remote interaction component may be configured to facilitatemultiple users cooperatively modifying a virtual content object.Cooperative modification of a virtual content object may be based onaccess controls and/or one or more other rules for modifying the virtualcontent object. For example, cooperative modification may be limited toone input at a time from the one or more users, users may be required toalternate or take turns between modifications (sequential), conflictingmodifications in substance or time may be cancelled or ignored,modifications may be based on a hierarchy defining a priority orderbetween the one or more users, and/or based on one or more other rulesfor cooperatively modifying virtual content objects. In someimplementations, the access controls may specify an administrative user.Each modification made may be subject to approval by the administrativeuser. In some implementations, any non-conflicting modifications mademay be implemented and all conflicting modifications may be subject tothe one or more access controls. For example, each conflictingmodification may be subject to approval or input by one or moreadministrative users. In some implementations, all modifications may besubject to approval or input by one or more administrative users. Invarious implementations, remote interaction component may be configuredto prompt an administrative user to determine whether or not a requestedmodification is approved.

The remote interaction component may be configured to facilitate thebroadcast of a visualization of an augmented reality environment by auser via a display device to one or more other users viewing thebroadcast via one or more other display devices. For example, arecording of images rendered in an augmented reality environment via adisplay device may be transmitted to one or more user devices associatedwith other users. In some implementations, the remote interactioncomponent may be configured to facilitate a live stream of an augmentedreality environment viewed via a display device to one or more otheruser devices. As such, a remote user may be able to view an augmentedreality environment another user is viewing via display device inreal-time.

These and other objects, features, and characteristics of the systemand/or method disclosed herein, as well as the methods of operation andfunctions of the related elements of structure and the combination ofparts and economies of manufacture, will become more apparent uponconsideration of the following description and the appended claims withreference to the accompanying drawings, all of which form a part of thisspecification, wherein like reference numerals designate correspondingparts in the various figures. It is to be expressly understood, however,that the drawings are for the purpose of illustration and descriptiononly and are not intended as a definition of the limits of theinvention. As used in the specification and in the claims, the singularform of “a”, “an”, and “the” include plural referents unless the contextclearly dictates otherwise.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a system for rendering a virtual content object in anaugmented reality environment based on a physical marker, in accordancewith one or more implementations.

FIG. 2A and FIG. 2B illustrate exemplary displays of an augmentedreality environment, in accordance with one or more implementations.

FIG. 3A and FIG. 3B illustrate exemplary displays of an augmentedreality environment, in accordance with one or more implementations.

FIG. 4 illustrates a method for rendering a virtual content object in anaugmented reality environment, in accordance with one or moreimplementations.

FIG. 5 illustrates a method for modifying a virtual content objectrendered in an augmented reality environment, in accordance with one ormore implementations.

DETAILED DESCRIPTION

This disclosure relates to systems and methods for rendering a virtualcontent object in an augmented reality environment based on a physicalmarker, in accordance with one or more implementations. Virtual contentobjects are three-dimensional virtual images of objects, such asthree-dimensional virtual images of constructed objects. For example,the objects may comprise buildings, houses, historical buildings,machines, monuments, vehicles, art installations, components of largerobjects, components of a game, and/or other three-dimensional objects.In various implementations, the objects may represent objects that mayor may not exist in the real-world. For example, a virtual contentobject comprising a house may comprise a house in the real-world or aplanned house not yet built in the real-world. Virtual content objectsmay be rendered by a display device in an augmented reality environmentbased on the field of view seen through the display device and aposition of a marker (and one or more linkage points associated with themarker) in the real world. When rendered in the augmented realityenvironment, the virtual content objects may be visualized from anyangle, from the exterior or interior of the object, and manipulated inresponse to user input. Virtual content objects and/or uservisualizations of virtual content objects may be shared with other users(local and/or remote), enabling multiple users to potentially build,modify, and/or interact with a virtual content object simultaneouslyand/or cooperatively.

It will be appreciated by those having skill in the art that theimplementations described herein may be practiced without these specificdetails or with an equivalent arrangement. In other instances,well-known structures and devices are shown in block diagram form inorder to avoid unnecessarily obscuring the implementations of theinvention.

Exemplary System Architecture

FIG. 1 illustrates a system 100 for rendering a virtual content objectin an augmented reality environment based on a physical marker, inaccordance with one or more implementations. The system may include oneor more of interface 102, one or more physical processors 110,electronic storage 130, display device 140, marker 150, and/or othercomponents.

The one or more physical processors 110 (also interchangeably referredto herein as processor(s) 110, processor 110, or processors 110 forconvenience) may be configured to provide information processingcapabilities in system 100. As such, the processor(s) 110 may compriseone or more of a digital processor, an analog processor, a digitalcircuit designed to process information, a central processing unit, agraphics processing unit, a microcontroller, an analog circuit designedto process information, a state machine, and/or other mechanisms forelectronically processing information.

Processor(s) 110 may be configured to execute one or more computerreadable instructions 112. Computer readable instructions 112 mayinclude one or more computer program components. Computer readableinstructions 112 may include one or more of user interface component114, content management component 116, image generation component 118,display control component 120, remote interaction component 122, and/orother computer program components. As used herein, for convenience, thevarious computer readable instructions 112 will be described asperforming an operation, when, in fact, the various instructions programthe processor(s) 110 (and therefore system 100) to perform theoperation.

User interface component 114 may be configured to generate and cause auser interface to be displayed to a user. In various implementations,the user interface may be displayed to a user via a display interface ofa user device. For example, a user interface may be displayed to a uservia a graphical user interface of a user device, a display of displaydevice 140, or any other display interface provided via a user deviceand/or a component of system 100.

In various implementations, user interface component 114 may beconfigured to generate a user interface that provides a user withinformation related to system 100 without enabling the user to provideinput via the user interface. For example, the information related tothe system may comprise an indication of one or more connected devices(e.g., a user device such as a smartphone or display device, one or moremarkers, and/or other devices connectable to system 100), sets ofvirtual content depicted in the augmented reality environment whethercurrently visible or not, sets of virtual content available to bepresented via display device 140 (e.g., content available via one ormore devices of a user, electronic storage 130, marker 150, and/or othercomponents of system 100), an indication of a direction in which virtualcontent may be visible via a display of display device 140, anindication of one or more markers visible via a display of displaydevice 140, an indication of one or more other users interacting withand/or viewing a set of virtual content, a current time and/or date,and/or other information related to system 100.

In various implementations, user interface component 114 may beconfigured to generate a user interface that provides a user withinformation related to system 100 and enables a user to provide input.For example, the user interface may comprise selectable icons, inputfields, and/or other user input options enabling a user to control oneor more aspects of system 100. In various implementations, userinterface component 114 may be configured to generate a user interfacethat enables a user to modify virtual content information for virtualcontent (e.g., a virtual content object) based on one or more types ofuser input. For example, a user interface generated by user interfacecomponent 114 may be configured to receive requests to modify a virtualcontent object displayed via display device 140. In someimplementations, user interface component 114 may be configured togenerate and provide to a user an interface that may receive requests tomodify virtual content while the virtual content is simultaneously beingdisplayed via display device 140. The requests to modify the virtualcontent object may comprise design alterations, alterations to one ormore dimensions of the virtual content object, the effectuation of oneor more virtual repairs, and/or one or more requests to modify a virtualcontent object. When implemented, modifications may be defined by theone or more parameters of the virtual content object.

In some implementations, user interface component 114 may be configuredto generate a user interface that presents selectable options to modifyvirtual content. For example, user interface component 114 may beconfigured to present a list of predefined options to modify one or moreparameters of virtual content, one or more components of a virtualcontent object, and/or one or more other aspects of virtual content. Inother words, a request to modify may in some implementations comprise aselection of one or more options associated with a virtual contentobject. In an exemplary implementation in which a virtual content objectcomprises an automobile, user interface component 114 may be configuredto present an interface comprising a selectable list of availableoptions associated with that particular automobile depicting by thevirtual content object.

In various implementations, user interface component 114 may beconfigured to generate a user interface that provides an indication ofthe virtual content available to be presented via display device 140.Virtual content may comprise one or more virtual content items depictedin an augmented reality environment based on one or more referenceframes. An augmented reality environment may comprise a space thatrepresents a virtual environment that may be superimposed over aperspective of a physical real-world environment around a user. Anaugmented reality environment may include attributes of a virtualenvironment, including virtual content superimposed over portions of thephysical environment. In some implementations, an augmented realityenvironment may represent physical objects in the physical world asvirtual content in the augmented environment.

A virtual content item may refer to an object, a part of an object, asurface, a texture, an effect, and/or other items visibly manifested inviews of the augmented reality environment. For example, in variousimplementations, a virtual content item may comprise a virtual contentobject. Virtual content objects are three-dimensional virtual images ofconstructed, built, or manufactured objects. For example, the objectsmay comprise buildings, houses, historical buildings, machines,monuments, vehicles, art installations, books, components of largerobjects, components of a game, and/or other three-dimensional objects.In some implementations, a virtual content object may comprise athree-dimensional virtual image of a nano construction or a graphinemesh. In various implementations, the objects may represent objects thatmay or may not exist in the real-world. For example, a virtual contentobject comprising a house may comprise a house in the real-world or aplanned house not yet built in the real-world. As such, the virtualcontent object may represent drawings of or plans for an object thatdoes not exist in the real-world. In some implementations,three-dimensional images of virtual content objects may comprise stillimages, interactive images, images that change based on the field ofview and position of a user visualizing the images, simulations ofvirtual content objects, and/or other three-dimensional images. A set ofvirtual content refers to a virtual content item or virtual contentitems that share a reference frame. That is, the position, orientation,scale, and/or other parameters of the virtual content item or items inthe set of virtual content can be manipulated in a coordinated way bymanipulating the reference frame for the set of virtual content.

At times, a view of the augmented reality environment may includevirtual content items from multiple sets of virtual content. A given setof virtual content may be depicted in the augmented reality environmentin accordance with the corresponding reference frames. That means afirst set of virtual content present in a view of the augmented realityenvironment may correspond to a first reference frame that is separateand/or independent from a second reference frame that corresponds to asecond set of virtual content. In some implementations, some of the setsof virtual content may have a hierarchical structure in which multiplesets of virtual content are included within a set of virtual contentthat is “higher” in the hierarchy with a corresponding reference frame.For example, the first set of virtual content and the second set ofvirtual content may both be included within a third set of virtualcontent that corresponds to a third reference frame. This hierarchy mayenable the position, orientation, scale, and/or other parameters of thefirst set of virtual content and/or the second set of virtual content tobe manipulated separately and/or independently from each (e.g., via thefirst reference frame and/or the second reference frame), and/ormanipulated together by manipulating the third reference frame.

The virtual content available to be presented via display device 140 mayinclude virtual content stored on or accessible via one or more devicesof a user, electronic storage 130, marker 150, and/or other componentsof system 100. In some implementations, user interface component 114 maybe configured to provide a list of virtual content available to bepresented via display device 140 obtained from content managementcomponent 116. For example, user interface component 114 may beconfigured to cause a selectable list of virtual content objectsavailable to be presented via display device 140 to be provided to auser. The list of virtual content available to be presented via displaydevice 140 may include virtual content stored on or accessible via oneor more devices of a user, electronic storage 130, marker 150, and/orother components of system 100, and/or virtual content available via anetwork (e.g., obtainable via the Internet, stored in cloud storage, orotherwise available via a network). In some implementations, userinterface component 114 may be configured to cause a selectable list ofvirtual content objects to be provided to a user via a user interface.In some implementations, user interface component 114 may be configuredto receive a selection indicating virtual content to be presented viadisplay device 140. For example, user interface component 114 may beconfigured to receive user input indicating a selection of one or morevirtual content objects to be presented via display device 140.

In some implementations, user interface component 114 may be configuredto generate a user interface that provides one or more selectablecontrols associated with recording, broadcasting, live streaming, and/orotherwise providing an image of an augmented reality environment to oneor more other users. For example, the one or more selectable controlsmay enable a user to pause, stop, fast forward, rewind, and/or otherwisecontrol a recording. In some implementations, the one or more selectablecontrols may enable a user to identify one or more recipients of animage of an augmented reality environment and/or establish one or moreaccess controls associated with the image of the augmented realityenvironment.

Content management component 116 may be configured to manage virtualcontent to be rendered in an augmented reality environment. In variousimplementations, content management component 116 may be configured todownload, upload, modify, remove, and/or otherwise manage informationstored and/or accessible by system 100. Information stored and/oraccessible by system 100 may include virtual content information.Virtual content information may define virtual content (or a set ofvirtual content), a reference frame of the virtual content, and/or acorrelation between linkage points associated with a marker and thereference frame of the virtual content. The linkage points may compriseindicators, transponders, stitching points, and/or other identifiedpoints on a marker (i.e., marker 150). The linkage points associatedwith a marker may serve as an anchor for the reference frame of virtualcontent. As such, the position of the linkage points in the real worldmay define the reference frame of virtual content with respect to thereal world.

In various implementations, virtual content information may comprisemultiple parameters that define a virtual content object to be displayedin an augmented reality environment. For example, the parameters maydefine a position of the virtual content when displayed in an augmentedreality environment (e.g., a physical location in the real-worldassociated with the virtual content object, a position in relation toone or more linkage points, and/or a position in relation to one or moreother virtual content objects), a size of the virtual content object, anorientation of the virtual content object with respect to a referenceframe of the virtual content object, one or more colors of the virtualcontent object, a shape of the virtual content object, one or morehaptic features of the virtual content object, one or more soundsassociated with the virtual content object, and/or one or more otherparameters that may define how a virtual content object is rendered inan augmented reality environment. For example, parameters defining oneor more animations associated with a virtual content object may definethe nature and timing of an animation associated with the virtualcontent object. In an exemplary implementation, a virtual content objectdepicting a car may be associated with one or more animations that showa door of the car opening and closing. In another exemplaryimplementation, a virtual content object depicting a windmill may beassociated with one or more animations that show a blade of the windmillspinning.

Virtual content information defining virtual content may be generatedusing various techniques. Virtual content information may be initiallygenerated using one or more techniques for generating three-dimensionalcontent. In various implementations, virtual content informationdefining virtual content objects may be generated based on user inputidentifying one or more parameters. Therefore, the virtual contentinformation may include information indicating the one or moreparameters in order to define a virtual content object. In someimplementations, virtual content information defining virtual contentobjects may be generated using three-dimensional animation techniques,using three-dimensional drawings (e.g., using computer-aided design(CAD) software), based on three-dimensional photography of real-worldobjects, based on still images and/or videos captured with athree-dimensional camera, and/or using other techniques for generatingthree-dimensional content. The virtual content information may begenerated automatically and/or based on user input related to the one ormore techniques for generating three-dimensional content. In variousimplementations, virtual content information may be generated, modified,and/or otherwise produced in real-time based on user input.

In various implementations, virtual content may be generated based on atemplate. A template may comprise a standardized framework upon whichvirtual content objects may be generated. In other words, a template maycomprise a foundation upon which virtual content objects may beconstructed. For example, virtual content objects may be constructedusing a template and one or more techniques for generatingthree-dimensional content. A template may be associated with one or morepredefined parameters. For example, the predefined parameters may definea predefined reference frame that is correlated to linkage pointsassociated with one or more markers (e.g., marker 150). In variousimplementations, the virtual content information defining a virtualcontent object comprises information identifying one or more predefinedparameters of a template associated with the virtual content object. Insome implementations, a template may be used to associate virtualcontent constructed based on the template with any set of linkage pointsassociated with any marker (e.g., marker 150). For example, a templatemay be configured to automatically associate with one or more linkagepoints of a marker (e.g., marker 150) to establish a reference frame forvirtual content constructed based on the template, regardless of thespecific content itself. In some implementations, a template may beassociated with one or more predefined sets of one or more linkagepoints of one or more markers.

In various implementations, a template may be obtained (e.g.,downloaded, received, and/or otherwise obtained) and provided to acreator of content. In some implementations, content managementcomponent 116 may be configured to cause a template to be provided to auser device associated with a user. For example, content managementcomponent 116 may be configured to obtain a template from electronicstorage, download a template from the Internet and/or cloud storage,and/or otherwise obtain a template and cause the template to betransmitted and/or provided to a user device associated with a user. Insome implementations, content management component 116 may be configuredto obtain a template responsive to and based on a request from a user.In some implementations, a request from a user for a template mayindicate one or more predefined parameters associated with the requestedtemplate. For example, the request from the user may indicate that atemplate associated with one or more particular markers (e.g., marker150) is requested and/or that a template associated with a particularreference frame is requested.

In various implementations, content management component 116 may beconfigured to obtain virtual content information. For example, contentmanagement component 116 may be configured to obtain virtual contentinformation from electronic storage. In some implementations, contentmanagement component 116 may be configured to obtain virtual contentinformation stored at one or more devices of user. In someimplementations, content management component 116 may be configured toobtain virtual content information via a network (e.g., obtainable viathe Internet, stored in cloud storage, or otherwise available via anetwork). For example, content management component 116 may beconfigured to download virtual content information from the Internet orfrom cloud storage in response to a selection of virtual content to bedisplayed on display device 140.

In some implementations, content management component 116 may beconfigured to obtain virtual content information from marker 150. Forexample, in some implementations, marker 150 may comprise a wirelesslyconnectable device linked to a power source and electronic storage. Insome implementations, content management component 116 may be configuredobtain virtual content information from a sign post serving as marker150 as described in co-pending U.S. patent application Ser. No.15/707,854, entitled “SYSTEMS AND METHODS FOR UTILIZING A DEVICE AS AMARKER FOR AUGMENTED REALITY CONTENT,” Attorney Docket No. 57YG-261775,the disclosure of which is hereby incorporated by reference in itsentirety herein.

In some implementations, content management component 116 may beconfigured to obtain and/or maintain a list of virtual content availableto be presented via display device 140. For example, the list of virtualcontent available to be presented via display device 140 may includevirtual content stored on or accessible via one or more devices of auser, electronic storage 130, marker 150, and/or other components ofsystem 100. Content management component 116 may be configured toprovide the list of virtual content available to be presented viadisplay device 140 to user interface component 114.

In some implementations, content management component 116 may beconfigured to determine whether virtual content information definingselected virtual content is locally stored or available via a device ofa user, electronic storage 130, marker 150, and/or other components ofsystem 100. Based on a determination that the virtual contentinformation is not available via a device of a user, electronic storage130, marker 150, or other component of system 100, content managementcomponent 116 may be configured to download virtual content informationfrom the Internet or from cloud storage based. For example, contentmanagement component 116 may be configured to automatically downloadvirtual content information based on a determination that the virtualcontent information is not available via a device of a user, electronicstorage 130, marker 150, or other component of system 100.

In various implementations, content management component 116 may beconfigured to generate virtual content information. For example, contentmanagement component 116 may be configured to generate virtual contentinformation by modifying virtual content information defining a virtualcontent object. In some implementations, content management component116 may be configured to generate modified virtual content informationbased on input received via a device of a user. For example, a userdevice, display device 140, and/or other components of system 100 may beconfigured to receive user input. In various implementations, the userinput may comprise a request to modify a virtual content object. Userinput may comprise physical input, voice input, gesture-based input,input based on movement of the display device, input based on user eyemovement, and/or other types of user input. In some implementations, theuser input may be received via a user device (e.g., via a user interfaceprovided by user interface component 114), display device 140, and/orother device connected to system 100. In some implementations, the userinput may be provided to system 100 via a user device, display device140, marker 150, and/or other device connected to system 100. User inputmay comprise a request to modify one or more parameters of the multipleparameters defining the virtual content object. In variousimplementations, content management component 116 may be configured togenerate and/or modify virtual content information based on user inputin real-time.

In various implementations, content management component 116 may beconfigured to store virtual content information. For example, contentmanagement component 116 may be configured to store virtual contentinformation at one or more devices of a user, electronic storage 130,marker 150, and/or other storage component accessible by system 100. Forexample, content management component 116 may be configured to storevirtual content information in cloud storage. In some implementations,content management component 116 may be configured to automaticallystore generated and/or modified virtual content information. Forexample, content management component 116 may be configured to generatevirtual content information based on a request to modify a virtualcontent object and automatically store the generated virtual contentinformation based on the modification request in electronic storage. Insome implementations, content management component 116 may be configuredto store virtual content information in electronic storage based onreceipt of an indication from a user to store the virtual contentinformation.

Virtual content information maintained by content management component116 may be accessible to other users, enabling virtual content created,modified, and/or obtained by a user to be shared with other users. Invarious implementations, virtual content information may include anidentification of one or more locations associated with a virtualcontent object. For example, a location associated with a virtualcontent object may be a physical location and/or a virtual location. Auser may define a physical location based on GPS coordinates, anaddress, a relative position with respect to one or more identifiedlocations, and/or other information of which to associate a virtualcontent object. A user may define a virtual location based on acorresponding physical location in the real world. For example, a remoteuser viewing an augmented reality environment may visualize a virtualcontent object in association with a remote physical location. In someimplementations, a virtual content object may be restricted such that itis only viewable in association with one or more linkage points at oneor more predefined locations.

In various implementations, content management component 116 may beconfigured to identify one or more users to which virtual contentinformation is to be made accessible. In some implementations, contentmanagement component 116 may be configured to obtain an indication ofone or more users from a user via a user device. For example, contentmanagement component 116 may cause virtual content information defininga virtual content object depicting a house to be shared with and/ortransmitted to a builder or architect based on identification of thebuilder or architect by a user. In some implementations, contentmanagement component 116 may be configured to receive an indication ofuser input identifying one or more users to make virtual contentinformation available. User input may identify the one or more users byproviding a name of the one or more users, contact information for oneor more users, and/or other information identifying one or more users.In some implementations, content management component 116 may beconfigured to automatically access a contact list associated with a userbased on receipt of an indication of one or more users to make virtualcontent information available.

In some implementations, content management component 116 may beconfigured to identify one or more users to which virtual contentinformation is to be made accessible based on requests to access thevirtual content information received from the one or more users. Whenrequests to access virtual content information are received from one ormore users, content management component 116 may be configured to prompta user associated with the virtual content information for approval tomake the virtual content information accessible to the one or moreusers.

In some implementations, content management component 116 may beconfigured to identify one or more users to which virtual contentinformation is to be made accessible based on geolocation informationassociated with the one or more users. Geolocation information mayidentify a geographically definable location associated with one or moreusers at one or more points in time. Geolocation information associatedwith one or more users may be obtained from a user device associatedwith each of the one or more users and determined automatically and/orbased on user input received from the one or more users. For example,based on the geographically definable location associated with one ormore users and a location associated with virtual content information,content management component 116 may be configured to make the virtualcontent information accessible to the one or more users.

In some implementations, content management component 116 may beconfigured to identify one or more users to which virtual contentinformation is to be made accessible based on one or more predefinedusers associated with virtual content information. For example, virtualcontent information defining a car with one or more users selectedoptions may be based on predefined virtual content information providedby a car dealer or manufacturer. Based on a prestored association of thecar dealer or manufacturer with the predefined virtual contentinformation, content management component 116 may be configured toidentify the car dealer or manufacturer as a user to share the virtualcontent information.

In various implementations, content management component 116 may beconfigured to establish one or more access controls associated withvirtual content information. Different access controls may beestablished for different virtual content information. Access controlsmay restrict users to accessing, downloading, uploading, modifying,storing, removing, and/or otherwise interacting with virtual contentinformation. For example, access controls for virtual contentinformation may comprise an indication of one or more rules formodifying the virtual content information. In various implementations,content management component 116 may be configured to access, download,upload, modify, store, remove, and/or otherwise manage informationstored and/or accessible by system 100 based on one or more accesscontrols.

Image generation component 118 may be configured to generate an image ofvirtual content to be displayed in an augmented reality environment. Invarious implementations, image generation component 118 may beconfigured to generate an image of virtual content to be displayed in anaugmented reality environment visible via display device 140. Images ofvirtual content generated by image generation component 118 may bepresented via a display of display device 140 in conjunction with thereal world so that the virtual content appears as if it exists in thereal world. In various implementations, image generation component 118may be configured to generate an image of virtual content to bedisplayed in an augmented reality environment based at least on a user'sfield of view and virtual content information obtained via contentmanagement component 116.

In various implementations, image generation component 118 may beconfigured to generate an image of virtual content to be displayed in anaugmented reality environment based on a user's field of view. Whenutilizing display device 140, a display of the display device maycontain a view of the real world based on the user's field of view. Auser's field of view may be defined based on orientation information,location information, and/or other information. For example, a user'sfield of view may be defined based at least on orientation informationassociated with display device 140 and location information associatedwith display device 140. Orientation information may define anorientation of display device 140. In some implementations, theorientation of display device 140 may refer to one or more of a pitchangle, a roll angle, a yaw angle, and/or other measurements. Orientationinformation may be obtained from an orientation sensor of display device140. When looking through display device 140, the orientation of displaydevice 140 may indicate the direction of a user's gaze. Locationinformation may identify a physical location of display device 140. Insome implementations, the physical location of display device 140 mayrefer to the geographic location of display device 140. Locationinformation may identify a physical location based on GPS coordinates,an address, a relative position with respect to one or more identifiedlocations, and/or other information. Location information may beobtained from a GPS component of a user device, display device 140,and/or other component of system 100. By determining the direction of auser's gaze and the user's physical position in the real world, a user'sfield of view may be determined.

In various implementations, image generation component 118 may beconfigured to generate an image of virtual content to be displayed in anaugmented reality environment based on virtual content informationobtained via content management component 116. In implementations inwhich the virtual content comprises a virtual content object, the imageof the virtual content object may comprise a three-dimensional virtualimage of the object. Virtual content information may define virtualcontent (or a set of virtual content), a reference frame of the virtualcontent, and/or a correlation between linkage points and the referenceframe of the virtual content. Linkage points may be defined with respectto an object in the real world (e.g., marker 150). The linkage pointsmay serve as an anchor for the reference frame of the virtual content.As such, when rendered in an augmented reality environment by displaydevice 140, the virtual content may appear within a user's field of viewbased on how the reference frame of the virtual content is correlated tothe real world by virtue of the position of the linkage points in thereal world. In various implementations, image generation component 118may be configured to identify one or more linkage points visible withina field of view of a user via display device 140.

For example, and referring to FIG. 2A, exemplary display 200 of anaugmented reality environment with virtual content is illustrated, inaccordance with one or more implementations. Exemplary display 200 maycomprise marker 150 and an image of virtual content 204. Exemplarydisplay 200 may include virtual content 204 depicting an automobile.Marker 150 may comprise or be defined based on an association with asmart phone. Marker 150 may be associated with multiple linkage pointsthat serve as an anchor for the reference frame of virtual content 204.In various implementations, virtual content information defining virtualcontent 204 and/or a correlation between the linkage points and areference frame of virtual content 204 may be obtained from marker 150.As display device 140 moves, image generation component 118 may beconfigured to automatically generate a new image based on the user'scurrent field of view. For example, and referring to FIG. 2B, exemplarydisplay 202 of an augmented reality environment with virtual content isillustrated, in accordance with one or more implementations. As one ormore users (or one or more display devices, such as display device 140)move with respect to marker 150, the images presented to each user viathe user's display device (such as display device 140) may change basedon the change in each user's field of view. For example, exemplarydisplay 202 may comprise a display of the augmented reality environmentdepicted in exemplary display 200 after a user (or display device 140)moves 90 degrees rotationally around marker 150. As such, exemplarydisplay 202 may comprise an image of virtual content 204 rotated 90degrees. In various implementations, the reference frame of virtualcontent 204 may be anchored to the multiple linkage points of marker150, enabling virtual content 204 to be fixed in space as one or moreusers (or one or more display devices, such as display device 140) movewith respect to marker 150 and virtual content 204.

In various implementations, image generation component 118 may beconfigured to generate a new image of virtual content as a user's fieldof view changes. For example, display device 140 may move as a userutilizing display device 140 changes position and/or rotates displaydevice 140. As display device 140 moves, image generation component 118may be configured to automatically generate a new image based on theuser's current field of view and virtual content information obtainedvia content management component 116. Therefore, image generationcomponent 118 may be configured to generate a new image of virtualcontent based at least on a user's current field of view in real-time.In various implementations, image generation component 118 may beconfigured to obtain an indication of an updated position of displaydevice 140 in the real world at a second time and generate an updatedimage of virtual content based on the updated position of the displaydevice 140 at the second time and the user's field of view at the secondtime. Therefore, image generation component 118 may be configured togenerate a first image of virtual content to be displayed at a firsttime based on the field of view of the user at the first time andgenerate a second image of virtual content to be displayed at a secondtime based on the field of view of the user at the second time.

For example, and referring to FIG. 3A, exemplary display 300 of anaugmented reality environment is illustrated, in accordance with one ormore implementations. Exemplary display 300 may comprise an image ofvirtual content 302 comprising a house. Virtual content 302 may beanchored to a marker (i.e., marker 150) comprising one or more linkagepoints. In this exemplary embodiment, the marker (i.e., marker 150) maycomprise or be defined based on a physical object such as a house orbuilding, a smartphone, and/or some other real-world object visiblewithin a user's field of view via display device 140. In variousimplementations, an image of virtual content 302 may be generated basedon virtual content information defining the virtual content and acorrelation between marker 150 and reference frame 304 of virtualcontent 302. As display device 140 moves, image generation component 118may be configured to automatically generate a new image based on theuser's current field of view. For example, and referring to FIG. 3B,exemplary display 306 of an augmented reality environment with virtualcontent is illustrated, in accordance with one or more implementations.As a user (or display device 140) moves with respect to marker 150 andreference frame 304, the images presented to the user via display device140 may change based on the change in the user's field of view. Forexample, exemplary display 306 may comprise a display of the augmentedreality environment depicted in exemplary display 300 after a user (ordisplay device 140) moves rotationally around marker 150 and referenceframe 304. As such, exemplary display 306 may comprise an image ofvirtual content 302 at a different vantage point (i.e., from a differentangle and/or position). In various implementations, reference frame 304may be anchored to one or more linkage points of a marker (i.e., marker150), enabling virtual content 302 to be fixed in space as a user (ordisplay device 140) moves with respect to marker 150, reference frame304, and, accordingly, the image of virtual content 302.

In various implementations, image generation component 118 may beconfigured to generate exterior images and/or interior images of virtualcontent. Virtual content information may define exterior images and/orinterior images of virtual content visible via display device 140 basedon the position of display device 140 with respect to a reference frameof virtual content 204. In other words, as a user moves with respect toa reference frame of virtual content, image generation component 118 maybe configured to generate images of the virtual content object to givethe user the impression the user is walking through the virtual contentobject. In some implementations, the size of the image of a virtualcontent object in the augmented reality environment may be the same as,similar to, or proportionate to the size of the object depicted by thevirtual content object as it appears, or would appear, in the realworld. Thus, in some implementations, image generation component 118 maybe configured to depict virtual content objects in an augmented realityenvironment as they appear, or would appear, in the real world, enablingusers to perceive and interact with (e.g., walk through) the virtualcontent objects as they exist or would exist in the real world. In someimplementations, the image of a virtual content object may appear muchlarger or much smaller in the augmented reality environment than how theobject depicted by the virtual content object appears, or would appear,in the real world. In other words, a virtual content object depicting aparticular object may be depicted in the augmented reality environmentat any size that is suitable and/or desirable for viewing the object inthe augmented reality environment. In an exemplary implementation inwhich a virtual content object comprises a three-dimensional virtualimage of a nano construction or a graphine mesh, the virtual contentobject may be depicted in an augmented reality environment much largerthan it appears or would appear in the real world, enabling a user toperceive and/or interact with an image of the nano construction orgraphine mesh without the use of a microscope. In an exemplaryimplementation in which a virtual content object comprises a ship, thevirtual content object may be depicted in an augmented realityenvironment much smaller than it appears or would appear in the realworld, enabling a user to perceive and interact with multiple sides ofthe ship simultaneously via the image of the ship.

For example, and referring to FIG. 2A and FIG. 2B, image generationcomponent 118 may be configured to generate an exterior image and/orinterior image of virtual content 204 based on the position of displaydevice 140 with respect to a reference frame of virtual content 204and/or the position of display device 140 with respect to marker 150. Assuch, a user may visualize both the exterior and interior of a car(virtual content 204) in an augmented reality environment via displaydevice 140. In an exemplary implementation, a user may choose featuresof a new car and build a custom virtual content object to visualize thecar. Each of the features of the new car may comprise or be defined byone or more parameters of the virtual content object. Content managementcomponent 116 may be configured to generate and/or modify virtualcontent information defining the virtual content object (i.e., new car)based on the one or more parameters, store the virtual contentinformation in electronic storage, and/or cause the virtual contentinformation to be shared with and/or transmitted to one or more otherusers. For example, content management component 116 may cause thevirtual content information to be shared with and/or transmitted to adealer and/or other users. Image generation component 118 may beconfigured to generate an image of the virtual content object (i.e., newcar) to be displayed in an augmented reality environment via displaydevice 140 based on the virtual content information. In an exemplaryimplementation in which the virtual content object depicts a historicalbuilding or a historical monument, image generation component 118 may beconfigured to automatically generate images of the virtual content as auser's field of view changes, thus enabling a user to visualize ahistorical building such as the Pantheon or a historical monument suchas Stonehenge from multiple angles or from the exterior or interior, allwithin in an augmented reality environment.

In various implementations, virtual content information may define acorrelation between one or more linkage points and one or more pointsassociated with virtual content. For example, one or more pointsdefining a virtual content object (and its reference frame) inthree-dimensional space may be correlated to one or more linkage pointsof marker 150. Therefore, a reference frame for virtual content may beanchored to multiple linkage points simultaneously. For example, andreferring to FIG. 3A and FIG. 3B, image generation component 118 may beconfigured to generate an exterior image and/or interior image ofvirtual content 302 based on the position of display device 140 withrespect to a reference frame of virtual content 204, the position ofdisplay device 140 with respect to marker 150, and/or the position ofdisplay device 140 with respect to one or more points defining virtualcontent 204 with respect to one or more linkage points of marker 150. Assuch, a user may visualize both the exterior and interior of a house(virtual content 302) in an augmented reality environment via displaydevice 140. In an exemplary implementation, a user may identify aphysical location in the real-world to associate with the virtual object(such as via an address, GPS coordinates, and/or other locationinformation) and build and/or modify the house by selecting/modifyingone or more parameters of the virtual content object. For example, auser may select one or more design features associated with a house, asize and/or position of the house and/or the one or more features,and/or other aspects of the house which may be defined by one or moreparameters of the virtual content object. Content management component116 may be configured to generate and/or modify virtual contentinformation defining the virtual content object (i.e., the house) basedon the one or more parameters, store the virtual content information inelectronic storage, and/or cause the virtual content information to beshared with and/or transmitted to one or more other users. For example,content management component 116 may cause the virtual contentinformation to be shared with and/or transmitted to a builder,architect, and/or other users. Image generation component 118 may beconfigured to generate an image of the virtual content object (i.e., thehouse) to be displayed in an augmented reality environment via displaydevice 140 based on the virtual content information.

In various implementations, image generation component 118 may beconfigured to generate an image of virtual content based on virtualcontent information generated in response to a request to modify avirtual content object. In some implementations, image generationcomponent 118 may be configured to generate the image of the modifiedvirtual content object based on the virtual content information inreal-time based on the request to modify the virtual content object.

In various implementations, image generation component 118 may beconfigured to generate an image of virtual content to appearsimultaneously with another image of virtual content within an augmentedreality environment. For example, a first set of virtual content basedon a first reference frame may be depicted simultaneously with a secondset of virtual content based on a second reference frame. In someimplementations, virtual content associated with marker 150 may bedepicted simultaneously with additional virtual content. For example,display device 140 may be displaying virtual content prior to comingwithin a proximity of marker 150. In some implementations, imagegeneration component 118 may be configured to generate an image in whicha first set of virtual content is overlaid on a second set of virtualcontent. In some implementations, sets of virtual content from differentsources may be depicted by display device 140 simultaneously.

Display control component 120 may be configured to cause an image of oneor more virtual content objects to be displayed in an augmented realityenvironment via display device 140. In various implementations, displaycontrol component 120 may be configured to effectuate transmission ofinstructions to display device 140. In various implementations, displaycontrol component 120 may be configured to generate and/or obtaininstructions causing an image of one or more virtual content to bedisplayed via display device 140. In various implementations, displaycontrol component 120 may be configured to cause an image of a virtualcontent object to be displayed in an augmented reality environment viadisplay device 140 and cause a modified image of the virtual contentobject to be displayed in the augmented reality environment via displaydevice 140 in response to a request to modify the virtual contentobject. In some implementations, display control component 120 may beconfigured to cause the modified image of the virtual content object tobe displayed in the augmented reality environment via display device 140in response to a request to modify the virtual content object inreal-time.

Remote interaction component 122 may be configured to facilitate remoteinteraction with virtual content objects by one or more other users. Forexample, remote interaction component may be configured to cause virtualcontent information to be accessible to one or more other users suchthat virtual content information (and the virtual content object) areviewable, modifiable, or otherwise accessible via a user device, displaydevice, and/or other device associated with another user. Usersinteracting with a single virtual content object may be located indifferent physical locations, connected by a network (e.g., via a widearea network (WAN), local area network (LAN), the Internet, the Cloud,and/or another network). In some implementations, virtual contentinformation and virtual content objects may be simultaneously viewedand/or modified by a user associated with display device 140 and anotheruser. In some implementations, a virtual content object may be viewed inassociation with one or more linkage points via display device 140 andviewed in association with one or more different linkage points via adifferent display device associated with a different user. When viewedsimultaneously by multiple users, the image of the virtual contentobject may be displayed or visualized differently based on the field ofview of the user. In other words, a second image of a virtual contentobject displayed to a second user via a second display device is basedon a second field of view of the second user.

In various implementations, remote interaction component 122 may beconfigured to facilitate simultaneous interaction with a virtual contentobject visualized in multiple augmented reality environment via multipledisplay devices associated with multiple users. In some implementations,a virtual content object may be simultaneously viewed in associationwith one or more linkage points via display device 140 and viewed inassociation with one or more different linkage points via a differentdisplay device associated with a different user. Thus, a single virtualcontent object may be viewed at the same or a different time at twodifferent locations and/or by two different users via one or moredisplay devices.

In an exemplary implementation, remote interaction component 122 may beconfigured to facilitate simultaneous interaction with a dynamic virtualcontent object depicting an interactive game. For example, remoteinteraction component 122 may be configured to enable one or more usersthat may or may not be remote from one another to play a game virtuallyin an augmented reality environment. For example, remote interactioncomponent 122 may be configured to enable one or more users that may ormay not be remote from one another to play a board game or table gamevirtually in an augmented reality environment. In variousimplementations, the virtual content information for a virtual contentobject depicting a game or one or more components of a game may defineone or more rules associated with the game and/or information explaininghow to play the game (i.e., instructions for playing the game). In someimplementations, user interface component 114 may generate and provideto a user an interface that provides information defining one or morerules associated with a game and/or information explaining how to play agame based on the virtual content information for the virtual contentobject depicting the game.

In various implementations, the reference frame for an interactive spaceassociated with a game (e.g., a board for a board game, a table for atable game, an interactive world for a role-playing game, and/or otherinteractive space associated with a game) may be anchored to a marker(i.e., marker 150) comprising one or more linkage points. The one ormore linkage points may define a reference frame for the interactivespace in the augmented reality environment. As such, the physicalposition of the linkage points in the real world may define the positionof the reference frame of the interactive space in the augmented realityenvironment with respect to the real world. In some implementations,animations depicting one or more obstacles in a game may be displayed inan augmented reality environment based on one or more linkage pointsvisible within a field of view of a user. For example, remoteinteraction component 122 may enable one or more users to participate inan online first-person shooter game in which virtual objects (e.g.,aliens, zombies, spaceships, other vehicles, and/or other in-gamecomponents) move with respect to one or more linkage points. Thus, aninteractive space associated with a game and the various components ofthe game may be depicted as one or more virtual content objects whichmay be perceived and interacted with in an augmented realityenvironment.

In an exemplary implementation, one or more virtual content objectsdepicted by system 100 may depict dice for a game (e.g., board game,table game, and/or other game) in the augmented reality environment. Thevirtual content information of a virtual content object depicting a diemay define one or more aspects of the die. For example, the virtualcontent information may define the alphanumeric and/or symboliccharacters on each side of the die, the number of sides of the die,and/or one or more other aspects of the die. In various implementations,a virtual content object depicting the die may be associated with arandom number generator that randomly determines an alphanumeric and/orsymbolic character for the virtual content object is activated (i.e.,when the die is rolled). In some implementations, the possible outputsof the random number generator may each be associated with one or moresides of the virtual content object depicting the die. For example, thevirtual content information for the virtual content object depicting thedie may be associated with a random number generator that randomlydetermines a number between one and six for dice consisting of six sideswith the numbers one through six each appearing on one of the six sides.

In various implementations, a virtual content object depicting die maybe activated in response to user input. For example, the virtual contentobject depicting the die may be activated in response to physical inputvia a user device (e.g., display device 140 and/or one or more otherdevices), voice input, gesture-based input, and/or other types of userinput. The physical input may comprise a request to roll one or more ofthe die depicted by one or more virtual content objects. When activated,an animation associated with a virtual content object depicting die maycommence. The animation associated with the virtual content object maycause the die to appear to roll in the augmented reality environment. Invarious implementations, a virtual content object depicting the die maybe associated with a virtual content object depicting an interactivespace associated with a game. The die depicted by the virtual contentobject may be a component of the game. When activated, the virtualcontent object may move based on the reference frame of the associatedvirtual content object depicting the interactive space. Once beingactivated and an animation associated with the virtual content object iscompleted, the virtual content object may appear based on the output ofthe random number generator associated with the die. When activated, therandom number generator may be prompted to provide an output. In someimplementations, the possible outputs of the random number generator mayeach be associated with an animation of the virtual content objectdepicting the die. In other words, the animation of the virtual contentobject may be based on the output of the random number generator. Forexample, a random number generator associated with a virtual contentobject depicting die consisting of six sides with the numbers onethrough six each appearing on one of the six sides may provide an outputof “four.” Based on the output, the virtual content object depicting thedie may appear with the side containing the character associated with“four” face up.

In some implementations, a virtual content object depicting aninteractive space associated with a game may be associated with multiplevirtual content objects depicting dice. In some implementations, eachvirtual content object depicting die may be associated with a separaterandom number generator. When the virtual content objects depicting diceare activated, an animation associated with each virtual content objectmay be commenced. In some implementations, the animations associatedwith the virtual content objects depicting the dice may commence or playsimultaneously. Based on a separate output provided by each randomnumber generator associated with each virtual content object, theoutcome of the animation may be determined. For example, a first virtualcontent object depicting first die may be associated with a first randomnumber generator that provides a first output of “three” when activated,and a second virtual content object depicting second die may beassociated with a second random number generator that provides a secondoutput of “five” when activated. Based on the first output and thesecond output, the animation of the first die and second die may resultin the first die stopping with a side depicting a character associatedwith the number “three” face up and the second die stopping with a sidedepicting a character associated with the number “five” face up. In someimplementations, a single random number generator may be associated withmultiple virtual content objects depicting dice. When multiple virtualcontent objects depicting dice associated with a single random numbergenerator are activated, the random number generator may be prompted toprovide multiple outputs, and each of the multiple outputs may determinea result of an animation of one of the multiple virtual content objects.

In various implementations, remote interaction component 122 may beconfigured to facilitate numerous types of remote interactions with avirtual content object and/or images of a virtual content object in anaugmented reality environment. In some implementations, one or moreremote users may view duplicate virtual content objects and/or images ofvirtual content objects. The images of the duplicate virtual contentobjects and/or duplicate images of virtual content objects may begenerated locally and displayed via display devices associated with theone or more users. Images of duplicate virtual content objects maycomprise different images of the same virtual content object generatedbased on each individual user's field of view. Duplicate images ofvirtual content objects may be the same image displayed via multipledisplay devices but generated based on a single user's field of view.

In various implementations, multiple users may simultaneously viewduplicate virtual content objects defined based on a single set ofvirtual content information and modifications made by any user viewingthe duplicate virtual content objects may cause modified virtual contentinformation to be generated. In some implementations, multiple users mayindividually modify a virtual content object irrespective of otherusers. For example, two users viewing the same virtual content objectmay each make individual requests to modify the virtual content object,wherein the requests to modify the virtual content object cause twomodified virtual content objects to be generated, each associated withone of the two users. A user viewing a modified virtual content objectin an augmented reality environment via display device 150 may receivean indication of a second, different, modified virtual content objectbased on user input from a second user requesting to modify the virtualcontent object. For example, user interface component 114 may cause theindication of the second modified virtual content object to be displayedto the user via a user interface, and display control component 120 maycause an image of the second modified virtual content object to bedisplayed in an augmented reality environment via display device 140 inresponse to a user request to view the second modified virtual contentobject.

In an exemplary implementation, remote interaction component 122 may beconfigured to provide visualizations of virtual content objects to oneor more remote users in order to direct the activities of the one ormore remote users. For example, a support team for a NASA mission inspace may utilize modifications to virtual content objects depicted inan augmented reality environment to provide images of the virtualcontent objects to one or more remote users in space in order tovisually convey simulations or instructions related to the mission.

In some implementations, multiple users may cooperatively modify avirtual content object. The multiple users may be in real-timecommunication when cooperatively modifying the virtual content object.The multiple users may be remote or located with close proximity. Forexample, multiple users sitting in the same room may cooperativelymodify a virtual content object. Modifications made by individual usersmay be tracked and labeled in the augmented reality environment based onthe user that made the modification. Cooperative modification of avirtual content object may be based on access controls and/or one ormore other rules for modifying the virtual content object. For example,cooperative modification may be limited to one input at a time from theone or more users, users may be required to alternate or take turnsbetween modifications (sequential), conflicting modifications insubstance or time may be canceled or ignored, modifications may be basedon a hierarchy defining a priority order between the one or more users,and/or based on one or more other rules for cooperatively modifyingvirtual content objects.

In some implementations, the access controls may specify one or moreadministrative users. Each modification made may be subject to approvalby one or more administrative users. In some implementations, one ormore administrative users may be predefined. For example, the creator ofvirtual content may define one or more administrative users associatedwith the virtual content. In some implementations, the one or moreadministrative users may change based on user input. For example, userinterface component 114 may be configured to generate and provide to auser an interface that may receive requests to modify one or moreadministrative users, and content management 122 may be configured tomodify the one or more administrative users associated with virtualcontent in response to request received via the interface. In someimplementations, only administrative users for particular virtualcontent may change the one or more administrative users associated withthat particular virtual content. For example, an administrative user mayconfer administrative user status on one or more other users.

In some implementations, any non-conflicting modifications made may beimplemented and all conflicting modifications may be subject to the oneor more access controls. For example, each conflicting modification maybe subject to approval or input by one or more administrative users. Insome implementations, all modifications may be subject to approval orinput by one or more administrative users. In various implementations,remote interaction component 122 may be configured to prompt one or moreadministrative users to determine whether or not a requestedmodification is approved. For example, remote interaction component 122may be configured to cause a prompt to be provided via a display device(e.g., display device 140) that requests user input from one or moreadministrative users that indicates whether the request to modify thevirtual content object is approved. Based on user input received fromthe one or more administrative users, remote interaction component 122may be configured to cause one or more modifications to be implemented.Implementing one or more modifications may comprise generating and/ormodifying virtual content information based on the requestedmodifications and/or saving the virtual content information includingthe requested modifications.

In some implementations, remote interaction component 122 may beconfigured to facilitate cooperative modification of a virtual contentobject based on interactivity status information. Interactivity statusinformation may indicate whether one or more users are modifying and/orotherwise interacting with a virtual content object. Based oninteractivity status information and access controls and/or one or moreother rules for modifying a virtual content object, remote interactioncomponent 122 may be configured to prevent the modification of a virtualcontent object. For example, remote interaction component 122 may beconfigured to cause a message to be displayed via a display deviceindicating that a request to modify a virtual content object is deniedbased on interactivity status information and access controls and/or oneor more other rules for modifying the virtual content object. As such,the modification of virtual content objects may be managed based oninteractivity status information, access controls, and/or one or moreother rules for modifying the virtual content objects.

In various implementations, remote interaction component 122 may beconfigured to manage the modification of a virtual content object by oneor more users based on access controls associated with the virtualcontent object. Different access controls may be established fordifferent virtual content information. Access controls may restrictusers to accessing, downloading, uploading, modifying, storing,removing, and/or otherwise interacting with virtual content information.For example, access controls for virtual content information maycomprise an indication of one or more rules for modifying the virtualcontent information.

In various implementations, remote interaction component 122 may beconfigured to facilitate the broadcast of a visualization of anaugmented reality environment by a user via display device 140 to one ormore other users viewing the broadcast via one or more other displaydevices. For example, remote interaction component 122 may be configuredto transmit a recording of images rendered in an augmented realityenvironment via display device 140 to one or more user devicesassociated with other users. The recordings may be captured by an imagecapturing device associated with display device 140. In someimplementations, remote interaction component 122 may be configured tofacilitate a live stream of an augmented reality environment viewed viadisplay device 140 to one or more other user devices. As such, a remoteuser may be able to view an augmented reality environment another useris viewing via display device 140 in real-time.

In some implementations, remote interaction component 122 may beconfigured to facilitate interaction between one or more users and aremote user comprising a three-dimensional printer. Based on a virtualcontent object, remote interaction component 122 may be configured togenerate and transmit instructions to cause a remote user comprising athree-dimensional printer to print polymer components necessary to buildand/or repair an object depicted by a virtual content object. Forexample, remote interaction component 122 may be configured to generateand transmit instructions to cause a remote user comprising athree-dimensional printer to print components to serve as biologicaltissue components, such as a defective heart valve generated based on avirtual content object depicting a human heart and the defective heartvalve.

Electronic storage 130 may include electronic storage media thatelectronically stores information. The electronic storage media ofelectronic storage 130 may be provided integrally (i.e., substantiallynon-removable) with one or more components of system 100 and/orremovable storage that is connectable to one or more components ofsystem 100 via, for example, a port (e.g., a USB port, a Firewire port,etc.) or a drive (e.g., a disk drive, etc.). Electronic storage 130 mayinclude one or more of optically readable storage media (e.g., opticaldisks, etc.), magnetically readable storage media (e.g., magnetic tape,magnetic hard drive, floppy drive, etc.), electrical charge-basedstorage media (e.g., EPROM, EEPROM, RAM, etc.), solid-state storagemedia (e.g., flash drive, etc.), and/or other electronically readablestorage media. Electronic storage 130 may be a separate component withinsystem 100, or electronic storage 130 may be provided integrally withone or more other components of system 100 (e.g., a user device,processor 110, or marker 150). Although electronic storage 130 is shownin FIG. 1 as a single entity, this is for illustrative purposes only. Insome implementations, electronic storage 130 may comprise multiplestorage units. These storage units may be physically located within thesame device, or electronic storage 130 may represent storagefunctionality of multiple devices operating in coordination.

Electronic storage 130 may store software algorithms, informationdetermined by processor 110, information received remotely, and/or otherinformation that enables system 100 to function properly. For example,electronic storage 130 may store virtual content information, anindication of virtual content stored and/or accessible by the system,images generated by image generation component 118, sensor information(e.g., orientation information), device information, locationinformation, and/or other information.

Display device 140 may be configured to present virtual content in anaugmented reality environment. In various implementations, displaydevice 140 may be configured to generate light and provide the light toan eye of a user such that the light forms images of the virtual contentconfigured to be perceived in the augmented reality environment as if itwere present in the real world. Display device 140 may include one ormore of a display, one or more sensors, and/or other components.Presentation of virtual content via a display of display device 140 maybe facilitated by control signals communicated to display device 140.For example, display control component 120 may be configured tocommunicate one or more control signals to display device 140. In someimplementations, display device 140 may be configured to present contentindividually to each eye of a user as stereoscopic pairs.

Display device 140 may comprise any device capable of displaying areal-time view of a physical, real-world environment while superimposingimages of virtual content over the real-time view of the physical,real-world environment. As such, display device 140 may comprise anydevice that includes and/or is communicatively coupled to an imagecapturing device (e.g., a camera) that may be used to capture a view ofthe real-world environment. In various implementations, display device140 may comprise a smartphone, a tablet, a computer, a wearable device(e.g., a headset, a visor, glasses, contact lenses, and/or any otherwearable device) and/or any other device configured to present views ofvirtual content in an augmented reality environment. In variousimplementations, display device 140 may include or be associated withone or more speakers for playing one or more sounds associated with avirtual content object. In some implementations, display device 140 maybe arranged on, and/or may comprise part of, a headset (not shown inFIG. 1). When headset is installed on a user's head, the user's gaze maybe directed towards display device 140 (or at least a display of displaydevice 140) to view content presented by display device 140.

A display of display device 140 may include one or more of screen, a setof screens, a touchscreen, a monitor, a headset (e.g., a head-mounteddisplay, glasses, goggles), contact lenses, and/or other displays. Insome implementations, a display may include one or more of atransparent, semi-transparent, reflective, and/or semi-reflectivedisplay component, such as a visor, glasses, and/or contact lenses.Images of virtual content may be presented on the display component suchthat the user may view the images presented on the display component aswell as the real-world through the display component. The virtualcontent may be perceived as being present in the real world. Such aconfiguration may provide an interactive space comprising an augmentedreality environment. By way of non-limiting illustration, display device140 may comprise an AR headset.

Individual sensors of display device 140 may be configured to generateoutput signals. An individual sensor may include an orientation sensorand/or other sensors. An orientation sensor of display device 140 may beconfigured to generate output signals conveying orientation informationand/or other information. Orientation information derived from outputsignals of an orientation sensor may define an orientation of displaydevice 140. In some implementations, orientation of display device 140may refer to one or more of a pitch angle, a roll angle, a yaw angle,and/or other measurements. An orientation sensor may include an inertialmeasurement unit (IMU) such as one or more of an accelerometer, agyroscope, a magnetometer, Inclinometers, and/or other devices. Invarious implementations, the orientation of display device 140 may becommunicated to image generation component 118 to generate and/or updateimages of a virtual content object to be viewed via display device 140.

System 100 may include one or more devices configured to or capable ofproviding haptic features via tactile output. For example, a userdevice, display device 140, and/or one or more other components ofsystem 100 may be configured to vibrate based on one or more parametersdefining haptic features of virtual content. A haptic feature maycomprise one or more effects associated with virtual content observedhaptically. For example, effects observed haptically may comprise one ormore of a vibration, a motion, a temperature, and/or other hapticeffects observed via tactile output. Haptic features may be static ordynamic, and may be haptically observed at a time, over a period oftime, at a location, and/or over a range of locations. For example, ahaptic feature of a virtual content object may be triggered based on anindication that a user has viewed the virtual content object for apredefined period of time and/or from a predefined location associatedwith the virtual content object. The parameters of a virtual contentobject may define one or more triggers associated with one or morehaptic features of the virtual content object.

Marker 150 may establish a reference frame for virtual content based onthe position of marker 150 in the real world. In variousimplementations, marker 150 may comprise a physical object associatedwith multiple linkage points. The linkage points may compriseindicators, transponders, stitching points, and/or other identifiedpoints on marker 150. The linkage points associated with a marker mayserve as an anchor for the reference frame of virtual content. As such,the position of the linkage points in the real world may define thereference frame of virtual content with respect to the real world. Insome implementations, marker 150 may comprise a point established with alaser. For example, a user device associated with a user of displaydevice 140, display device 140, and/or one or more other devices (e.g.,one or more laser pointers and/or other laser emitting devices) mayestablish one or more linkage points in the real world based on a laser(e.g., a laser emitted from one or more laser diodes). In someimplementations, multiple devices may establish a single set of linkagepoints that define the reference frame of virtual content with respectto the real world based on the positions identified by multiple lasersemitted by the multiple devices. In some implementations, marker 150 maybe created for, and/or provided to, a user. In some implementations,marker 150 may comprise a physical object that serves as an anchor forthe reference frame of virtual content irrespective of the virtualcontent. In some implementations, marker 150 may comprise a physicalobject created specifically for one or more virtual content objects. Insome implementations, marker 150 may comprise a physical object thatexists in the real world. For example, a physical object that exists inthe real world may be associated with multiple linkage points andconfigured to serve as an anchor for the reference frame of virtualcontent.

In various implementations, marker 150 may comprise a standardizedframework of linkage points that serve as an anchor for virtual contentin an augmented reality environment. In some implementations, marker 150may comprise a formed blank with identified linkage points on one ormore interior and/or exterior surfaces of the formed blank. A formedblank may comprise any two-dimensional or three-dimensional objectassociated with multiple linkage points. For example, a formed blankcomprising a flat surface (e.g., a section of 2×4 and/or other flatsurface), a hollow cylinder (e.g., a soup can and/or other cylinder),and/or any other two-dimensional or three-dimensional object may serveas marker 150. In some implementations, a standardized framework oflinkage points may comprise a set of specific geometric shapes (such asa plus (“+”) sign) that may serve as an anchor for the reference frameof virtual content.

In some implementations, marker 150 may comprise a physical object ofthe same or a similar type as a virtual content object depicted based onmarker 150. For example, marker 150 may comprise a cylindrical tube witha diameter similar to the diameter of a passenger jet serving as theanchor for a virtual content object depicting a plane. In an exemplaryimplementation in which marker 150 comprises a cylindrical tube servingas the anchor for a virtual content object depicting a plane, a user maybe able to walk through marker 150 and visualize images of the exteriorand interior of the virtual content object.

In some implementations, marker 150 may comprise a powered and Bluetoothenabled flash drive, a smartphone, a cellphone, a tablet, and/or anyother wirelessly connectable device linked to a power source andassociated with multiple linkage points. For example, marker 150 maycomprise a sign post as described in co-pending U.S. patent applicationSer. No. 15/707,854, entitled “SYSTEMS AND METHODS FOR UTILIZING ADEVICE AS A MARKER FOR AUGMENTED REALITY CONTENT,” Attorney Docket No.57YG-261775, the disclosure of which is hereby incorporated by referencein its entirety herein.

Implementations of the disclosure may be made in hardware, firmware,software, or any suitable combination thereof. Aspects of the disclosuremay be implemented as instructions stored on a machine-readable medium,which may be read and executed by one or more processors. Amachine-readable medium may include any mechanism for storing ortransmitting information in a form readable by a machine (e.g., acomputing device). For example, a tangible computer readable storagemedium may include read only memory, random access memory, magnetic diskstorage media, optical storage media, flash memory devices, and others,and a machine-readable transmission media may include forms ofpropagated signals, such as carrier waves, infrared signals, digitalsignals, and others. Firmware, software, routines, or instructions maybe described herein in terms of specific exemplary aspects andimplementations of the disclosure, and performing certain actions.

Although processor 110, electronic storage 130, display device 140, andmarker 150 are shown to be connected to interface 102 in FIG. 1, anycommunication medium may be used to facilitate interaction between anycomponents of system 100. One or more components of system 100 maycommunicate with each other through hard-wired communication, wirelesscommunication, or both. For example, one or more components of system100 may communicate with each other through a network. For example,processor 110 may wirelessly communicate with electronic storage 130. Byway of non-limiting example, wireless communication may include one ormore of the Internet, radio communication, Bluetooth communication,Bluetooth Low Energy (BLE) communication, Wi-Fi communication, cellularcommunication, infrared communication, or other wireless communication.Other types of communications are contemplated by the presentdisclosure.

Although processor 110 is illustrated in FIG. 1 as a single component,this is for illustrative purposes only. In some implementations,processor 110 may comprise multiple processing units. These processingunits may be physically located within the same device, or processor 110may represent processing functionality of multiple devices operating incoordination. For example, processor 110 may be located within a userdevice, display device 140, marker 150, and/or other components ofsystem 100. In some implementations, processor 110 may be remote from auser device, display device 140, marker 150, and/or other components ofsystem 100. Processor 110 may be configured to execute one or morecomponents by software; hardware; firmware; some combination ofsoftware, hardware, and/or firmware; and/or other mechanisms forconfiguring processing capabilities on processor 110.

Furthermore, it should be appreciated that although the variousinstructions are illustrated in FIG. 1 as being co-located within asingle processing unit, in implementations in processor(s) 110 includemultiple processing units, one or more instructions may be executedremotely from the other instructions.

The description of the functionality provided by the differentcomputer-readable instructions described herein is for illustrativepurposes, and is not intended to be limiting, as any of instructions mayprovide more or less functionality than is described. For example, oneor more of the instructions may be eliminated, and some or all of itsfunctionality may be provided by other ones of the instructions. Asanother example, processor(s) 110 may be programmed by one or moreadditional instructions that may perform some or all of thefunctionality attributed herein to one of the computer-readableinstructions.

Exemplary Flowcharts of Processes

FIG. 4 illustrates a method 400 for rendering a virtual content objectin an augmented reality environment, in accordance with one or moreimplementations. The operations of method 400 presented below areintended to be illustrative and, as such, should not be viewed aslimiting. In some implementations, method 400 may be accomplished withone or more additional operations not described, and/or without one ormore of the operations discussed. In some implementations, two or moreof the operations may occur substantially simultaneously. The describedoperations may be accomplished using some or all of the systemcomponents described in detail above.

In some implementations, method 400 may be implemented in one or moreprocessing devices (e.g., a digital processor, an analog processor, adigital circuit designed to process information, a central processingunit, a graphics processing unit, a microcontroller, an analog circuitdesigned to process information, a state machine, and/or othermechanisms for electronically processing information). The one or moreprocessing devices may include one or more devices executing some or allof the operations of method 400 in response to instructions storedelectronically on one or more electronic storage mediums. The one ormore processing devices may include one or more devices configuredthrough hardware, firmware, and/or software to be specifically designedfor execution of one or more of the operations of method 400.

In an operation 402, method 400 may include obtaining virtual contentinformation defining a virtual content object to be displayed in anaugmented reality environment as if it were present in the real world.The virtual content information may define virtual content (or a set ofvirtual content), a reference frame of the virtual content, and/or acorrelation between linkage points associated with a marker and thereference frame of the virtual content. For example, the virtual contentinformation may comprise multiple parameters that define a virtualcontent object to be displayed in an augmented reality environment. Insome implementations, operation 402 may be performed by a processorcomponent the same as or similar to content management component 116(shown in FIG. 1 and described herein).

In an operation 404, method 400 may include identifying one or morelinkage points visible within a field of view of a user via a displaydevice and defined with respect to an object in the real world. In someimplementations, operation 404 may be performed by a processor componentthe same as or similar to image generation component 118 (shown in FIG.1 and described herein).

In an operation 406, method 400 may include generating an image of thevirtual content object based on the field of view of the user, aposition of the display device in the real world, and a position of eachof the linkage points in the real world. A user's field of view may bedefined based on orientation information, location information, and/orother information. The linkage points may serve as an anchor for thereference frame of the virtual content object. As such, when rendered inan augmented reality environment by the display device, the virtualcontent object may appear within a user's field of view based on how thereference frame of the virtual content is correlated to the real worldby virtue of the position of the linkage points in the real-world. Insome implementations, operation 406 may be performed by a processorcomponent the same as or similar to image generation component 118(shown in FIG. 1 and described herein).

In an operation 408, method 400 may include causing the image to bedisplayed in the augmented reality environment via the display device.In some implementations, operation 508 may be performed by a processorcomponent the same as or similar to display control component 120 (shownin FIG. 1 and described herein).

FIG. 5 illustrates a method 500 for modifying a virtual content objectrendered in an augmented reality environment, in accordance with one ormore implementations. The operations of method 500 presented below areintended to be illustrative and, as such, should not be viewed aslimiting. In some implementations, method 500 may be accomplished withone or more additional operations not described, and/or without one ormore of the operations discussed. In some implementations, two or moreof the operations may occur substantially simultaneously. The describedoperations may be accomplished using some or all of the systemcomponents described in detail above.

In some implementations, method 500 may be implemented in one or moreprocessing devices (e.g., a digital processor, an analog processor, adigital circuit designed to process information, a central processingunit, a graphics processing unit, a microcontroller, an analog circuitdesigned to process information, a state machine, and/or othermechanisms for electronically processing information). The one or moreprocessing devices may include one or more devices executing some or allof the operations of method 500 in response to instructions storedelectronically on one or more electronic storage mediums. The one ormore processing devices may include one or more devices configuredthrough hardware, firmware, and/or software to be specifically designedfor execution of one or more of the operations of method 500.

In an operation 502, method 500 may include obtaining user inputindicating a request to modify the virtual content object. For example,the request to modify the virtual content object may comprise a requestto modify one or more parameters defining the virtual content object.User input may comprise physical input, voice input, gesture-basedinput, input based on movement of the display device, input based onuser eye movement, and/or other types of user input. In someimplementations, operation 502 may be performed by a processor componentthe same as or similar to user interface component 114 and/or contentmanagement component 116 (shown in FIG. 1 and described herein).

In an operation 504, method 500 may include generating second virtualcontent information defining the virtual content object based on therequest. For example, the second virtual content information may begenerated by modifying virtual content information defining the virtualcontent object based on the request. In some implementations, the secondvirtual content information may be generated based on the request inreal-time. In some implementations, operation 504 may be performed by aprocessor component the same as or similar to content managementcomponent 116 (shown in FIG. 1 and described herein).

In an operation 506, method 500 may include causing the second virtualcontent information to be stored in electronic storage. In variousimplementations, the virtual content information may be electronicallystored at one or more devices of a user, electronic storage 130, marker150, and/or other storage component accessible by system 100. Forexample, the virtual content information may be stored in cloud storage.In some implementations, virtual content information may be storedautomatically or based on receipt of an indication from a user to storethe virtual content information. In some implementations, operation 506may be performed by a processor component the same as or similar tocontent management component 116 (shown in FIG. 1 and described herein).

In an operation 508, method 500 may include generating a modified imageof the virtual content object based on the second virtual contentinformation. In some implementations, operation 508 may be performed bya processor component the same as or similar to image generationcomponent 118 (shown in FIG. 1 and described herein).

In an operation 510, method 500 may include causing the modified imageof the virtual content object to be displayed in the augmented realityenvironment via a display device. In various implementations, thegenerated image is caused to be displayed in the augmented realityenvironment via the display device in real-time based on the request. Insome implementations, operation 510 may be performed by a processorcomponent the same as or similar to display control component 120 (shownin FIG. 1 and described herein).

For purposes of explanation, numerous specific details are set forth inorder to provide a thorough understanding of the description. It will beapparent, however, to one skilled in the art that implementations of thedisclosure can be practiced without these specific details. In someinstances, modules, structures, processes, features, and devices areshown in block diagram form in order to avoid obscuring the description.In other instances, functional block diagrams and flow diagrams areshown to represent data and logic flows. The components of blockdiagrams and flow diagrams (e.g., modules, blocks, structures, devices,features, etc.) may be variously combined, separated, removed,reordered, and replaced in a manner other than as expressly describedand depicted herein.

Reference in this specification to “one implementation”, “animplementation”, “some implementations”, “various implementations”,“certain implementations”, “other implementations”, “one series ofimplementations”, or the like means that a particular feature, design,structure, or characteristic described in connection with theimplementation is included in at least one implementation of thedisclosure. The appearances of, for example, the phrase “in oneimplementation” or “in an implementation” in various places in thespecification are not necessarily all referring to the sameimplementation, nor are separate or alternative implementations mutuallyexclusive of other implementations. Moreover, whether or not there isexpress reference to an “implementation” or the like, various featuresare described, which may be variously combined and included in someimplementations, but also variously omitted in other implementations.Similarly, various features are described that may be preferences orrequirements for some implementations, but not other implementations.

The language used herein has been principally selected for readabilityand instructional purposes, and it may not have been selected todelineate or circumscribe the inventive subject matter. Otherimplementations, uses and advantages of the invention will be apparentto those skilled in the art from consideration of the specification andpractice of the invention disclosed herein. The specification should beconsidered exemplary only, and the scope of the invention is accordinglyintended to be limited only by the following claims.

1. A system configured to render a virtual content object in anaugmented reality environment based on a physical marker, the systemcomprising: a display device configured to generate light and providethe light to an eye of a user such that the light forms images ofvirtual content configured to be perceived in the augmented realityenvironment as if it were present in the real world; electronic storageconfigured to store virtual content information defining one or morevirtual content objects and a correlation between multiple linkagepoints and a reference frame of each virtual content object, wherein aposition of each of the multiple linkage points in the real worlddefines the reference frame with respect to the real world; one or morephysical computer processors configured by computer readableinstructions to: obtain first virtual content information from theelectronic storage, wherein the first virtual content informationdefines the virtual content object based on multiple parameters;identify one or more linkage points visible within a field of view of auser via the display device and defined with respect to an object in thereal world; generate an image of the virtual content object to bedisplayed in the augmented reality environment, wherein the image of thevirtual content object is generated based on the first virtual contentinformation, the field of view of the user, and the correlation betweenthe multiple linkage points and the reference frame of the virtualcontent object; and cause the image to be displayed in the augmentedreality environment via the display device.
 2. The system of claim 1,wherein the one or more processors are further configured to: obtainuser input from the user indicating a request to modify a firstparameter of the multiple parameters of the virtual content object;generate second virtual content information defining the virtual contentobject based on the request, wherein the second virtual contentinformation is different than the first virtual content information;cause the second virtual content information to be stored in electronicstorage; generate a modified image of the virtual content object basedon the second virtual content information; and cause the modified imageof the virtual content object to be displayed in the augmented realityenvironment via the display device based on the request.
 3. The systemof claim 1, wherein the one or more processors are further configuredto: receive an indication of multiple virtual content objects stored inthe electronic storage, wherein the multiple virtual content objectsinclude the virtual content object; cause a selectable list of themultiple virtual content objects to be presented to the user; andreceive a selection indicating the virtual content object, wherein thevirtual content information is obtained based on the selection.
 4. Thesystem of claim 1, wherein the field of a view of the user is definedbased on location information and orientation information, the locationinformation indicating at least a current location associated with thedisplay device, and the orientation information indicating at least apitch angle, a roll angle, and a yaw angle associated with the displaydevice.
 5. The system of claim 1, wherein the image of the virtualcontent object is generated based on a position of the display device,wherein the one or more processors are further configured to: obtain anindication of an updated position of the display device in the realworld at a second time, wherein the updated position of the displaydevice is different than the position of the display device; and causean updated image of the virtual content object to be displayed in theaugmented reality environment via the display device in real-time,wherein the updated image is generated based on the updated position ofthe display device in the real world.
 6. The system of claim 2, whereinthe one or more processors are further configured to: cause the firstvirtual content information defining the virtual content object to beaccessible by a second user device of a second user, wherein the virtualcontent object is viewable via the display device and a second displaydevice associated with the second user device simultaneously.
 7. Thesystem of claim 6, wherein the one or more processors are furtherconfigured to: receive an indication of a second modified image of thevirtual content object, wherein the second modified image is differentthan the modified image and is based on second user input from thesecond user; and cause the second modified image of the virtual contentobject to be displayed in the augmented reality environment via thedisplay device.
 8. The system of claim 6, wherein the virtual contentobject is simultaneously viewable via the display device based on theone or more linkage points and via the second display device based onone or more second linkage points, wherein the one or more secondlinkage points are different than the one or more linkage points.
 9. Thesystem of claim 6, wherein the first virtual content information definesaccess controls for the virtual content object, the access controlsidentifying one or more rules for modifying the virtual content objectand an administrative user of the user and the second user, wherein theone or more processors are further programmed to: receive an indicationof a request to modify the first parameter of the multiple parameters ofthe virtual content object from the second user, wherein the requestfrom the user and the request from the second user are conflicting;cause a prompt to be provided to the administrative user requesting anindication of whether the request to modify from the user or the requestto modify from the second user is approved; and cause the second virtualcontent information to be generated based on the request from the userresponsive to user input received from the administrative userindicating that the request to modify from the user is approved.
 10. Thesystem of claim 6, wherein the first virtual content information definesaccess controls for the virtual content object, the access controlsidentifying one or more rules for modifying the virtual content objectand an administrative user of the user and the second user that mustapprove all requests to modify a virtual content object before they areimplemented.
 11. The system of claim 2, wherein the one or moreprocessors are further configured to: cause the modified image of thevirtual content object to be transmitted to a user device of a seconduser remote from the display device, wherein the transmitted modifiedimage of the virtual content object is viewable via a second displaydevice of the second user.
 12. The system of claim 11, wherein thetransmitted image of the modified image of the virtual content object isviewable via the second display device in real-time.
 13. The system ofclaim 6, wherein a second image of the virtual content object displayedto a second user via a second display device is based on a second fieldof view of the second user, wherein the image of the virtual contentobject is different than the second image of the virtual content object.14. The system of claim 1, wherein the image of the virtual contentobject displayed in the augmented reality environment is perceived asbeing the same size as an object depicted by the virtual content objectwould appear in the real world.
 15. The system of claim 1, wherein thevirtual content object is constructed based on a template associatedwith one or more predefined parameters, the one or more predefinedparameters comprising at least an identification of the correlationbetween the multiple linkage points and the reference frame of thevirtual content object.
 16. The system of claim 1, wherein the virtualcontent object comprises an interactive space associated with a game,and wherein the one or more processors are further configured to: obtainsecond virtual content information defining a second virtual contentobject comprising die, wherein the second virtual content object isassociated with the game and a first random number generator; obtainthird virtual content information defining a third virtual contentobject comprising die, wherein the third virtual content object isassociated with the game and a second random number generator; generatean image of the second virtual content object and an image of the thirdvirtual content object to be displayed in the augmented realityenvironment; receive user input indicating a request to roll the dicedepicted by the second virtual content object and the third virtualcontent object; responsive to the request to roll the dice, obtain anoutput of the first random number generator and an output of the secondrandom number generator; cause the image of the second virtual contentobject to be animated, wherein animating the image of the second virtualcontent object causes the second virtual content object to appear toroll and an outcome of the roll is based on the output of the firstrandom number generator, and wherein the animation of the image of thesecond virtual content object is based on a correlation between thereference frame of the virtual content object and a reference frame ofthe second virtual content object; and cause the image of the thirdvirtual content object to be animated, wherein animating the image ofthe third virtual content object causes the third virtual content objectto appear to roll and an outcome of the roll is based on the output ofthe second random number generator, and wherein the animation of theimage of the third virtual content object is based on a correlationbetween the reference frame of the virtual content object and areference frame of the third virtual content object.
 17. A method ofrendering a virtual content object in an augmented reality environmentbased on a physical marker, the method comprising: obtaining firstvirtual content information from an electronic storage, wherein thefirst virtual content information defines the virtual content object anda correlation between multiple linkage points and a reference frame ofthe virtual content object, wherein the virtual content object isdefined based on multiple parameters, and wherein a position of each ofthe multiple linkage points in the real world defines the referenceframe with respect to the real world; identifying one or more linkagepoints visible within a field of view of a user via a display device anddefined with respect to an object in the real world, wherein the displaydevice is configured to generate light and provide the light to an eyeof a user such that the light forms images of virtual content configuredto be perceived in the augmented reality environment as if it werepresent in the real world; generating an image of the virtual contentobject to be displayed in the augmented reality environment, wherein theimage of the virtual content object is generated based on the firstvirtual content information, the field of view of the user, and thecorrelation between the multiple linkage points and the reference frameof the virtual content object; and causing the image to be displayed inthe augmented reality environment via the display device.
 18. The methodof claim 17, the method further comprising: obtaining user input fromthe user indicating a request to modify a first parameter of themultiple parameters of the virtual content object; generating secondvirtual content information defining the virtual content object based onthe request, wherein the second virtual content information is differentthan the first virtual content information; causing the second virtualcontent information to be stored in electronic storage; generating amodified image of the virtual content object based on the second virtualcontent information; and causing the modified image of the virtualcontent object to be displayed in the augmented reality environment viathe display device based on the request.
 19. The method of claim 17, themethod further comprising: receiving an indication of multiple virtualcontent objects stored in the electronic storage, wherein the multiplevirtual content objects include the virtual content object; causing aselectable list of the multiple virtual content objects to be presentedto the user; and receiving a selection indicating the virtual contentobject, wherein the virtual content information is obtained based on theselection.
 20. The method of claim 17, wherein the field of a view ofthe user is defined based on location information and orientationinformation, the location information indicating at least a currentlocation associated with the display device, and the orientationinformation indicating at least a pitch angle, a roll angle, and a yawangle associated with the display device.
 21. (canceled)
 22. (canceled)23. (canceled)
 24. (canceled)
 25. (canceled)
 26. (canceled) 27.(canceled)
 28. (canceled)
 29. (canceled)
 30. (canceled)